#ifndef __CK_GROUP_H__
#define __CK_GROUP_H__

#include "ckobject.h"
#include "zCore.h"
#include <vector>
#include <string>

namespace ck
{
	namespace data
	{
		class Field;
		class Group;
		class EnumGroup;
		class EnumField;

		class ZCORE_API Group :	public ckObject
		{
		public:
			Group();
			virtual ~Group();

		public:
			const char*	GetName();
			RESULTCODE	SetName(const char* szName);

			RESULTCODE	AddField(Field* pField);
			RESULTCODE	AddGroup(Group* pGroup);

			EnumGroup*	GetGroups();
			EnumField*	GetFields();
			Field*		GetField(const char* szName);

			void		Clear();

		public:
			std::string m_strName;
			std::vector<Field*>	m_fields;
			std::vector<Group*>	m_groups;
		};
	}
}

#endif //__CK_GROUP_H__